Clean up formatting of Xen crash messages.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 18 Aug 2005 14:26:36 +0000 (14:26 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 18 Aug 2005 14:26:36 +0000 (14:26 +0000)
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/x86/traps.c
xen/arch/x86/x86_32/traps.c
xen/arch/x86/x86_64/traps.c
xen/drivers/char/console.c

index 38970c6a8b60193f4422e7ab3c5adcc7ff710358..af33455ca224f5d00794378e5235f0f30223edf3 100644 (file)
@@ -159,10 +159,8 @@ void show_trace(unsigned long *esp)
         addr = *stack++;
         if ( is_kernel_text(addr) )
         {
-            if ( (i != 0) && ((i % 6) == 0) )
-                printk("\n   ");
             printk("[<%p>]", _p(addr));
-            print_symbol(" %s\n", addr);
+            print_symbol(" %s\n   ", addr);
             i++;
         }
     }
index e6e8a11141ac9fcb41025765ca27a4002f937381..c346a77d452aebc6ee610fee8262456d42b3434c 100644 (file)
@@ -66,7 +66,8 @@ void show_registers(struct cpu_user_regs *regs)
 
     printk("CPU:    %d\nEIP:    %04lx:[<%08lx>]",
            smp_processor_id(), (unsigned long)0xffff & regs->cs, eip);
-    print_symbol(" %s\n", eip);
+    if ( !GUEST_MODE(regs) )
+        print_symbol(" %s\n", eip);
     printk("EFLAGS: %08lx   CONTEXT: %s\n", eflags, context);
     printk("eax: %08x   ebx: %08x   ecx: %08x   edx: %08x\n",
            regs->eax, regs->ebx, regs->ecx, regs->edx);
index c40a04359e42ad61b81eddffe5b43a330da20302..98bfd4c6f71351df729719e094eda8cdab5e25bd 100644 (file)
@@ -17,7 +17,8 @@ void show_registers(struct cpu_user_regs *regs)
 {
     printk("CPU:    %d\nEIP:    %04x:[<%016lx>]",
            smp_processor_id(), 0xffff & regs->cs, regs->rip);
-    print_symbol(" %s\n", regs->rip);
+    if ( !GUEST_MODE(regs) )
+        print_symbol(" %s\n", regs->rip);
     printk("EFLAGS: %016lx\n", regs->eflags);
     printk("rax: %016lx   rbx: %016lx   rcx: %016lx   rdx: %016lx\n",
            regs->rax, regs->rbx, regs->rcx, regs->rdx);
index 84bad115ea39fcf92beea68baf85f4d228d21e4a..22524db86eb62fb0d88cb50707243955aee7b215 100644 (file)
@@ -652,8 +652,9 @@ __initcall(debugtrace_init);
 void panic(const char *fmt, ...)
 {
     va_list args;
-    char buf[128], cpustr[10];
+    char buf[128];
     unsigned long flags;
+    static spinlock_t lock = SPIN_LOCK_UNLOCKED;
     extern void machine_restart(char *);
     
     debugtrace_dump();
@@ -665,16 +666,13 @@ void panic(const char *fmt, ...)
     debugger_trap_immediate();
 
     /* Spit out multiline message in one go. */
-    spin_lock_irqsave(&console_lock, flags);
-    __putstr("\n****************************************\n");
-    __putstr("Panic on CPU");
-    sprintf(cpustr, "%d", smp_processor_id());
-    __putstr(cpustr);
-    __putstr(":\n");
-    __putstr(buf);
-    __putstr("****************************************\n\n");
-    __putstr("Reboot in five seconds...\n");
-    spin_unlock_irqrestore(&console_lock, flags);
+    spin_lock_irqsave(&lock, flags);
+    printk("\n****************************************\n");
+    printk("Panic on CPU %d:\n", smp_processor_id());
+    printk(buf);
+    printk("****************************************\n\n");
+    printk("Reboot in five seconds...\n");
+    spin_unlock_irqrestore(&lock, flags);
 
     watchdog_disable();
     mdelay(5000);